<?php
require_once 'UninstallHandler.php';
require_once 'UninstallView.php';
require_once 'ErrorView.php';
require_once 'Log.php';

class UninstallController
{
	private $m_database = NULL;
	private $m_tablePrefix = NULL;
	private $m_databaseName = NULL;

    public function __construct(DatabaseConnection $database)
    {
        $this->m_database = $database;
		$this->m_tablePrefix = $database->getTablePrefix();
		$this->m_databaseName = $database->getDatabaseName();
    }
	
	public function doControll()
	{
		// Instansierar objekt av UninstallHandler, UninstallView.
		$UninstallHandler = new UninstallHandler($this->m_database);
		$UninstallView = new UninstallView();
		
		// Instansierar ErrorView och Log.
		$ErrorView = new ErrorView();
		$Log = new Log();
		
		$xhtml = "";
		
		// Kollar om användaren är admin.
		if ($UninstallHandler->isUserAdmin($UninstallView->getSessionUsername()) == true)
		{
			// Droppa tabellerna.
			if ($UninstallHandler->dropNotesTable($this->m_tablePrefix) == false)
			{
				// Kunde inte droppa tabellerna.
				$xhtml .= $ErrorView->showErrorMessage("Kunde inte droppa ".$this->m_tablePrefix."notes", "error");
			}
			
			if ($UninstallHandler->dropUsersTable($this->m_tablePrefix) == false)
			{
				// Kunde inte droppa tabellerna.
				$xhtml .= $ErrorView->showErrorMessage("Kunde inte droppa ".$this->m_tablePrefix."users", "error");
			}
			
			// Droppa databasen. (Bortkommenterat för den tar bort allt från min databas på webbservern).
			// if ($UninstallHandler->dropDatabase($this->m_database) == false)
			// {
				// $xhtml .= $ErrorView->showErrorMessage("Kunde inte droppa databasen", "error");
			// }
			
			// Loggar ut användaren.
			$UninstallHandler->doLogout();
			
			// Rensar Settings.php
			$UninstallHandler->truncateSettings();
			
			// Skickar användaren till startsidan.
			header("Location: index.php");
		}
		else
		{
			// Skriv ut att du måste vara admin för att avinstallera notes.
			$xhtml .= $ErrorView->showErrorMessage("Du måste vara admin för att avinstallera.", "error");
		}
		
		return $xhtml;
	}
	// Är användaren inloggad som admin?
		// Ta bort databasen och tabellerna.
}